#pragma once

#include <boost/shared_ptr.hpp>

#include "exports.hpp"
#include "Reply.hpp"




class CRAWLER_API DataReader
{
public:

	typedef boost::shared_ptr<DataReader>         Ptr;
	typedef boost::shared_ptr<const DataReader>   const_Ptr;

public:

	DataReader() {}
	virtual ~DataReader() {}



	/**
	 * Returns the next reply (if available).
	 * If no reply is returned, then the Provider shall wait for
	 * several seconds, before trying again.
	 */
	virtual Reply::Opt next() = 0;
};
///////////////////////////////////////////////////////////////////////////////////////////////////
